framework module DependsOnModule {
  umbrella header "DependsOnModule.h"
  header "other.h"
  module * {
    export *
  }
  explicit module CXX {
    requires cplusplus
    header "cxx_other.h"
  }
  explicit module NotCXX {
    requires !cplusplus
    header "not_cxx.h"
  }
  explicit module NotObjC {
    requires !objc
    header "not_objc.h"
  }
  explicit module CustomReq1 {
    requires custom_req1
  }
  explicit module CustomReq2 {
    requires custom_req2
  }
  explicit module Coroutines {
    requires coroutines
    header "coroutines.h"
  }
  explicit module NotCoroutines {
    requires !coroutines
    header "not_coroutines.h"
  }
  explicit framework module SubFramework {
    umbrella header "SubFramework.h"

    module * {
      export *
    }
  }
  explicit module CXX11 {
    requires cplusplus11
  }
  explicit module CXX14 {
    requires cplusplus14
  }
  explicit module CXX17 {
    requires cplusplus17
  }
  explicit module C99 {
    requires c99
  }
  explicit module C11 {
    requires c11
  }
  explicit module C17 {
    requires c17
  }
}
